fun main(args: Array<String>) {
    // 泛型类 - 灵活性 & 复用性 
    val box = Box(100)
    println(box.getValue1()  + 10)
  
    val box2 = Box("hello")
    println(box2.getValue1().uppercase())
  
  
    // 泛型集合
    val list = listOf<Int>(11, 22, 33, -4, 88, 3, -5, 18)
    list.forEach {
      println(it)
    }
  }
  
  class Box<T> (var value: T){
    // fun getValue1(): T {
    //   return value
    // }
    fun getValue1(): T = value
  }